\documentclass[12pt]{article}

\usepackage{graphicx,float,wrapfig}
\usepackage{color}
\usepackage{listings}
\usepackage[usenames,dvipsnames]{xcolor}

\pagestyle{empty}
\setcounter{secnumdepth}{2}

%Margins
\topmargin=0cm
\oddsidemargin=0cm
\textheight=22.0cm
\textwidth=16cm
\parindent=0cm
\parskip=0.15cm
\topskip=0truecm
\raggedbottom
\abovedisplayskip=3mm
\belowdisplayskip=3mm
\abovedisplayshortskip=0mm
\belowdisplayshortskip=2mm
\normalbaselineskip=12pt
\normalbaselines



% Homework Specific Information
\newcommand{\hmwkTitle}{Testing Document}
\newcommand{\hmwkDueDate}{Sunday, April 8th, 2012}
\newcommand{\hmwkClass}{COMP 354}
\newcommand{\hmwkClassTime}{Thursday 17:45}
\newcommand{\hmwkClassInstructor}{Greg Butler}
\newcommand{\hmwkTeamNum}{Group 5}
\newcommand{\hmwkTeamMembers}{
	Domenico Romano & 5574331 \\
	Ghassan Fakih & 4078748\\
	Izz Kaddoura & 9450106\\
	Jon Leckman & 4960122\\
	Matt Baum & 9753095\\
	Sandy Carter & 1121057 \\
	Samantha Graham & 1120689\\
	Van Nicoghosian & 9587071\\
}
\newcommand{\hmwklogo}{\includegraphics[width=150mm]{concordialogo.png}}

% Templates Info
\newcommand{\projectname}{\textcolor{red}{PROJECTNAME}} % do not keep red\
\newcommand{\targetuser}{\textcolor{red}{TARGETUSER}}
\newcommand{\targetbusiness}{\textcolor{red}{TARGETBUSINESS}}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Make Title

\title{
	\hmwklogo
	\vspace*{0.5in}
	\centerline{\bf\Large\hmwkTitle}
}
\author{\hmwkTeamNum}
\date{\hmwkDueDate}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}
\maketitle
\vspace*{1.5in}
\begin{table}[htbp]
	\caption{Team}
	\begin{center}
	\begin{tabular}{|r | c|}
	\hline
	\textbf{Name} & \textbf{ID Number} \\
	\hline\hline
	\hmwkTeamMembers
	\hline
\end{tabular}
\end{center}	
\end{table}

\clearpage

\section{Introduction}

{\it
This document is an overview of the testing performed on the entire system. Included is the test plan used, a description of all input/output files as well as all test cases performed and their results.
}

\section{Test Plan}

{\it

To test the TaskPro system, we have planned to begin with unit testing and then progress to subsystem testing and finilize the testing with integration testing. The testing was performed by the iteration three testing team. They were given about 15 hours of testing time on Window OS machines running Eclipse and NetBeans as well as JUnit.

Test cases were performed in a bottom up configuration, beginning with unit test which will test each function individually. Then after successfully running each test, we will proceed with subsystem (module) testing to confirm that the interfaces are working correctly. Finally, integration testing will assess that the entire system is in working order to the requirements establish in the requirements document.

All nine requirements written in the requirements document were tested.

}


\subsection{Unit Level Test Cases}

{\it
All test cases for testing at the Unit level.
}

\subsubsection{2.1.1  DataHelpers.java} 

\subsubsection{Test Case 1:testPrintChars() }

\noindent
{\bf Purpose}\\
To test the printChars() function in the DataHelpers class. This function was used to help with the output format of the xml file to the console.

\noindent
{\bf Input Specification}\\
The input was a character and an int. The function is to take the character and print it the chosen amount times in a row. 

\noindent
{\bf Expected Output}\\
The output expected was the character printed out the same number of times as the int we chose.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 2: testPadString() }

\noindent
{\bf Purpose}\\
To test the padString() function in the DataHelpers class. This function was used to help with the output format of the xml file to the console. It allowed for a word centered around empty spaces

\noindent
{\bf Input Specification}\\
The input was a string and an int. The function takes the string and prints it the middle of the total amount of characters chosen.

\noindent
{\bf Expected Output}\\
The output expected was the character printed between empty spaces with total characters equaling the int chosen.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{2.1.2: NumberFieldValidator.java} 

\subsubsection{Test Case 1: testKeyTypedKeyEvent() }

\noindent
{\bf Purpose}\\
To test the keyTypedKeyEvent() function in the NumberFieldValidator class. This was to make sure that only numbers can be entered in the number fields of the Task Pro system.

\noindent
{\bf Input Specification}\\
A series of alphanumeric characters were used as inputs, with numbers being the only thing the function should accept. 

\noindent
{\bf Expected Output}\\
It should allow numbers to be passed through but it should block use of letters.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{2.1.3: Person.java} 

\subsubsection{Test Case 1: testHashCode() }

\noindent
{\bf Purpose}\\
To test the hashCode() function. This test was to make sure that the ID variable of a person object would be properly fetched.

\noindent
{\bf Input Specification}\\
The input is an int. 

\noindent
{\bf Expected Output}\\
The ID of the person object should equal the int of the same value of the id.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 2: testPerson() }

\noindent
{\bf Purpose}\\
To test the person() function. This was to test if the constructor properly stored the name and id of a person object.

\noindent
{\bf Input Specification}\\
The input is a string and an int. 

\noindent
{\bf Expected Output}\\
The expected output should be equal to what the input was. This was to make sure that when a person is created from the conversion of the XML file, they would be created correctly.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 3: testToGUIEntry() }

\noindent
{\bf Purpose}\\
To test the toGUIEntry() function. This was to test if the input would output to GUI correctly. This would meet the Create a Task requirement, in that it is a function which paves the way for the tasks to be created and displayed.  This also help test the requirement for Viewing Task Assignments. This allowed workers and managers to see entries.

\noindent
{\bf Input Specification}\\
The input was a person object. 

\noindent
{\bf Expected Output}\\
The expected output should be equal to what the input was. This was to make sure that the function will correctly place the variables into an array which would be ready to be displayed.

\noindent
{\bf Traces to Use Cases}\\
Manage Tasks, View Tasks

\subsubsection{Test Case 4: testAddTask()  }

\noindent
{\bf Purpose}\\
To test the addTask() function. This was to test the requirement of Modifying Tasks as well as Create a Task. This function is used to add a new task. Also within this function, another function (private) was tested, calculateHours(). This means we can also test for the Log Hours to Task requirement.

\noindent
{\bf Input Specification}\\
An ArrayList of tasks were required, of which the tasks were created manually.

\noindent
{\bf Expected Output}\\
The expected output would be that addTask would give us the same values for all variables if we would later remove each tasked added from the ArrayList.

\noindent
{\bf Traces to Use Cases}\\
View Tasks, Manage Tasks.


\subsubsection{2.1.4: Task.Java} 

\subsubsection{Test Case 1: getTaskFromXMLNode() }

\noindent
{\bf Purpose}\\
Testing the GetTaskFromXMLNode()function, which get the task from the xml input.  

\noindent
{\bf Input Specification}\\
The input test data is an xml file (a non empty)
I’m performing this test with input to show that the new xml file created under the tag Task , is not empty and successfully passed the test. 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert the Tag<Task> is not empty and have the correct fetched task.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 2: setParentOnSubtasks() ) }

\noindent
{\bf Purpose}\\
Testing the testSetParentOnSubtasks() function, which set  a  parent task to a subtask. 

\noindent
{\bf Input Specification}\\
The inputs are two tasks 
I’m performing this test with this input to show that you can set a parent task to a subtask  and successfully passed the test. 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert that subtask has the same Getparent of the other task.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 3: toXML() }

\noindent
{\bf Purpose}\\
Testing the testToXML() function, which takes a task and convert it into xml file. 

\noindent
{\bf Input Specification}\\
The inputs are two tasks 
I’m performing this test with this input to show that if we task and convert it into xml file and it successfully passed the test. 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert that the ID in the task is equal to ID in the xml file.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 4: removeSubtask()  }

\noindent
{\bf Purpose}\\
Testing the testRemoveSubtask() function, which simply remove a parent task from its subtask.

\noindent
{\bf Input Specification}\\
The inputs are a parent task and its subtask.
I’m performing this test with this input to show that if we can remove a subtask from its parent and it successfully passed the test. 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert that the size of the parent tasks is zero.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 5: removeFromParent()  }

\noindent
{\bf Purpose}\\
Testing the testRemoveFromParent()function, which simply remove a subtask from a parent task. 

\noindent
{\bf Input Specification}\\
The inputs are a parent task and its subtask.
I’m performing this test with this input to show that if we can remove a parent task from its parent and it successfully passed the test. 
 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert that Both of them should be 0 since Sizebeforeremove -1 = SizeAfterRemove.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{2.1.5: TaskTable.Java} 

\subsubsection{Test Case 1: initializeFromFile() }

\noindent
{\bf Purpose}\\
Testing the testInitializeFromFile() ,function which simply create a new task from an xml file.

\noindent
{\bf Input Specification}\\
The inputs an xml file.
I’m performing this test with this input to show that if we can create a task from the info of a xml file and it successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert the new task created is not empty.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 2: writeToTXT()  }

\noindent
{\bf Purpose}\\
Testing the testWriteToTXT() ,function which simply create a new task and put it in a text file

\noindent
{\bf Input Specification}\\
The input is a task.
I’m performing this test with this input to show that if we can create a task and put its information to a text file and it successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert the new text file exist and not empty.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 3: modifyAssignee() }

\noindent
{\bf Purpose}\\
Testing the testModifyAssignee(), function which simply modify and change the assignee to a new one. 

\noindent
{\bf Input Specification}\\
The input is an integer (new assignee).
I’m performing this test with this input to show that if we can modify the assignee and put it into a new one and it successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert that AssigneeIDBeforeModi is not the same as after modification.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 4: modifyAssignee()  }

\noindent
{\bf Purpose}\\
Testing the testModifyAssignee(),function which simply modify and change the assignee to a new one. 

\noindent
{\bf Input Specification}\\
The input is an integer (new assignee).
I’m performing this test with this input to show that if we can modify the assignee and put it into a new one and it successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert that AssigneeIDBeforeModi is not the same as the input (the modification)

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 5: modifyEstimatedDuration()  }

\noindent
{\bf Purpose}\\
Testing the testModifyEstimatedDuration() function, which simply modify and change the estimated duration to a new one.  

\noindent
{\bf Input Specification}\\
The input is an integer (new estimated duration).
I’m performing this test with this input to show that if we can modify the estimated duration and put it into a new one and it successfully passed the test. 
 
 \noindent
{\bf Expected Output}\\
The expected outputs are to assert that durationBeforeMod is not the same as the input (the modification).

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 6: modifyTimeInvested()  }

\noindent
{\bf Purpose}\\
Testing the testModifyTimeInvested() function, which simply modify and change the time invested to a new one. 

\noindent
{\bf Input Specification}\\
The input is an integer (new time invested)
I’m performing this test with this input to show that if we can modify the time invested and put it into a new one and it successfully passed the test

\noindent
{\bf Expected Output}\\
The expected outputs are to assert that TimeAfterMod and (TimeBeforeMod and newTimeAdded) are equal.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 7: modifyTaskTitle() }

\noindent
{\bf Purpose}\\
Testing the testModifyTaskTitle()function, which simply modify and change the title to a new one. 

\noindent
{\bf Input Specification}\\
The input is a string (new estimated duration).
I’m performing this test with this input to show that if we can modify the title  and put it into a new one and it successfully passed the test. 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert that titleBeforeMod and newTitle are not the same.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 8: saveToXML()  }

\noindent
{\bf Purpose}\\
Testing the testSaveToXML()function, which simply store a task to a new xml file.

\noindent
{\bf Input Specification}\\
The input is a task.
I’m performing this test with this input to show that if we can save the task into a new xml file and it successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if the newly created file exist and not empty.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 9:deleteTask()  }

\noindent
{\bf Purpose}\\
Testing the testDeleteTask()function, which simply delete a task. 

\noindent
{\bf Input Specification}\\
The input is a task.
I’m performing this test with this input to show that if we can delete the task completely and it successfully passed the test. 

 
 \noindent
{\bf Expected Output}\\
The expected outputs are to assert if the deleted file is null.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{2.1.6: TaskPro.Java} 

\subsubsection{Test Case 1: initializeFromFile() }

\noindent
{\bf Purpose}\\
Testing the testInitializeTaskTable()function, which initialize a task table.

\noindent
{\bf Input Specification}\\
The input is an object from the Taskpro class.
I’m performing this test with this input to show that if we can starts and initialize a task table and it successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if TaskPro is not empty (null) 

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 2: initializePersonTable()  }

\noindent
{\bf Purpose}\\
Testing the testInitializePersonTable()function, which initialize a person table.

\noindent
{\bf Input Specification}\\
The input is an object from the Taskpro class.
I’m performing this test with this input to show that if we can starts and initialize a person table and it successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if TaskPro is not empty (null).

\noindent
{\bf Traces to Use Cases}\\
None

subsubsection{2.1.7: SpecialTaskTest.Java} 

\subsubsection{Test Case 1: testAddSubtask() }

\noindent
{\bf Purpose}\\
Testing the testAddSubtask()function, which  Test the adding of a subtask

\noindent
{\bf Input Specification}\\
The inputs are a subtask and a parent task.
I’m performing this test with this input to Test the adding of a subtask and it successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if :
Subtask must appear in subtask list of parent
Subtask must be marked as a subtask



\noindent
{\bf Traces to Use Cases}\\
None



\subsubsection{Test Case 2: testSelfSubtask()  }

\noindent
{\bf Purpose}\\
Testing the testSelfSubtask() function, which  Test the adding of a subtask

\noindent
{\bf Input Specification}\\
The input is a task.
I’m performing this test with this input to Test the adding of a subtask and it successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert if :
Subtask must appear in subtask list of parent
 Subtask must be marked as a subtask


\noindent
{\bf Traces to Use Cases}\\
None




\subsubsection{Test Case 3: testSelfSubtask()  }

\noindent
{\bf Purpose}\\
Testing the testSelfSubtask() function, which  Test the adding of a subtask

\noindent
{\bf Input Specification}\\
The input is a task.
I’m performing this test with this input to Test if the function self subtask and successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert if A Task cannot subtask itself.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 4:  testRedundantSubtask() }

\noindent
{\bf Purpose}\\
Testing the testRedundantSubtask() function, which  Test the adding of a subtask, multiple times

\noindent
{\bf Input Specification}\\
The input is a task.
I’m performing this test with this input to test for a redundant subtask and successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert if A task contains a subtask once

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 5: testManyToOneSubtask() }

\noindent
{\bf Purpose}\\
Testing the testManyToOneSubtask()  function, which  Test the adding of a subtask to multiple parents

\noindent
{\bf Input Specification}\\
The input is a task.
I’m performing this test with this input to test if it allows many to one subtask and successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert if this test false since it should not be allowed.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 6: testCircularSubtask() }


\noindent
{\bf Purpose}\\
Testing the testCircularSubtask()function, which  Test the assigning of subtasks in a circular fashion.

\noindent
{\bf Input Specification}\\
The input is a task.
I’m performing this test with this input to test if it allows many subtasks in a circular fashion and successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if this test false since it should not be allowed.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 7: testAddDependency()  }

\noindent
{\bf Purpose}\\
Testing the testAddDependency() function, which  Test the assigning of a dependency.

\noindent
{\bf Input Specification}\\
The inputs are two task.
I’m performing this test with this input to test tries to relate two unrelated tasks and successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if Dependency was not removed.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 8:  testRedundantDependency() }

\noindent
{\bf Purpose}\\
Testing the testRedundantDependency() function, which  Test the assigning of a dependency multiple times.

\noindent
{\bf Input Specification}\\
The inputs are two task.
I’m performing this test with this input to test tries to relate two unrelated tasks and successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if did not add added the same dependency twice.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 9: testManyToOneDependency()  }

\noindent
{\bf Purpose}\\
Testing the testManyToOneDependency() function, which tests the assigning of a Task as a dependency for multiple tasks

\noindent
{\bf Input Specification}\\
The inputs are two tasks.
I’m performing this test with this input to test many to one dependency successfully passed the test

\noindent
{\bf Expected Output}\\
The expected outputs are to assert this assigning is acceptable

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 10: containsInSubtasks()   }

\noindent
{\bf Purpose}\\
Testing the containsInSubtasks () function, which determine which private helper to determine if a task contains another in its subtask

\noindent
{\bf Input Specification}\\
The input are two tasks.
I’m performing this test with this input to if it contains a subtask successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if for each subtask equals the other subtask which is equivalent to itself.

\noindent
{\bf Traces to Use Cases}\\
None



subsubsection{2.1.8: personTable.Java} 

\subsubsection{Test Case 1: testAssignTask() }

\noindent
{\bf Purpose}\\
Testing the testAssignTask() function, which  check if the assign task exist

\noindent
{\bf Input Specification}\\
The input is an xml file.
I’m performing this test with this input to check if the assign task is created it successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert true if it exist.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 1: testAssignTask() }

\noindent
{\bf Purpose}\\
Testing the testAssignTask() function, which  check if the assign task exist

\noindent
{\bf Input Specification}\\
The input is an xml file.
I’m performing this test with this input to check if the assign task is created it successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert true if it exist.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 2: testGetPersonByID() }

\noindent
{\bf Purpose}\\
Testing the testGetPersonByID () function, which check if the assign ID exist

\noindent
{\bf Input Specification}\\
The input is an xml file.
I’m performing this test with this input to check if the assign ID is created it successfully passed the test. 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert true if it exists.

\noindent
{\bf Traces to Use Cases}\\
None

\subsubsection{Test Case 3: testWriteToXML() }

\noindent
{\bf Purpose}\\
Testing the testWriteToXML() function, which check if a task table is write to an xml file

\noindent
{\bf Input Specification}\\
The inputs are task table and personable.
I’m performing this test with this input to Check task table is put into an xml file and it  successfully passed the test. 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert true if the xml file created with the same information.

\noindent
{\bf Traces to Use Cases}\\
None




\subsection{Modular cases}

{\it
All test cases for testing at the Modular level.
}

\subsubsection{2.2.1: SpecialTaskTest.Java} 

\subsubsection{Test Case 1: testRemoveSubtaskRemoveDependency()  }

\noindent
{\bf Purpose}\\
Testing the testRemoveSubtaskRemoveDependency() function, which verifies removing a subtask from the parent.

\noindent
{\bf Input Specification}\\
The input is a sub task.
I’m performing this test with this input to test to remove a subtask successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if it’s removing a subtask correctly and it’s null. 

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{Test Case 2:  testRemoveDependencyRemoveSubtask() }

\noindent
{\bf Purpose}\\
Testing the testRemoveDependencyRemoveSubtask() function, which verify that removing a dependency, also removes a subtask from the subtask list (if it ever existed there).

\noindent
{\bf Input Specification}\\
The inputs are a sub task and a dependency.
I’m performing this test with this input to test to remove a dependency successfully passed the test. 



\noindent
{\bf Expected Output}\\
The expected outputs are to assert if Subtask was NOT removed as a result of removing its corresponding dependency. 

\noindent
{\bf Traces to Use Cases}\\
None



\subsubsection{Test Case 3: testSelfDependency() }

\noindent
{\bf Purpose}\\
Testing the testSelfDependency() function, which verifies that a task cannot depend on itself.

\noindent
{\bf Input Specification}\\
The inputs are a sub task and a dependency.
I’m performing this test with this input to test self dependency successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert if that the task was NOT added

\noindent
{\bf Traces to Use Cases}\\
None



\subsection{SubSystem cases}

{\it
All test cases for testing at the subsystem level.
}

\subsubsection{2.3.1: ChartView.Java} 

\subsubsection{Test Case 1: setup() }

\noindent
{\bf Purpose}\\
Testing the setup()function, which initialize two objects of type ChartView. This is for the requirement Viewing Task Scheduling Chart.

\noindent
{\bf Input Specification}\\
The inputs are two empty objects of type charView.
I’m performing this test with this input to show that if we can starts and initialize two objects of type chartview and it successfully passed the test. 


\noindent
{\bf Expected Output}\\
The expected outputs are to assert that the constructor works properly by creating an empty chart and a chart that contains tasks.

\noindent
{\bf Traces to Use Cases}\\
View Tasks


\subsubsection{Test Case 2: setShow()  }

\noindent
{\bf Purpose}\\
Testing the testSetShow() function, which  check if the chart is visible or not. This is for the requirement Viewing Task Scheduling Chart.

\noindent
{\bf Input Specification}\\
The inputs are two Booleans.
I’m performing this test with this input to Check if all the Chart windows are shown or not yet it successfully passed the test. 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert that the Booleans are triggered true if they are shown.

\noindent
{\bf Traces to Use Cases}\\
View Tasks


\subsubsection{Test Case 3: chartUpdate() }

\noindent
{\bf Purpose}\\
Testing the testChartUpdate()function, which  simply check if the chart is updated. This is for the requirement Viewing Task Scheduling Chart.

\noindent
{\bf Input Specification}\\
The inputs is a task
I’m performing this test with this input to Check if all tasks are updated to the chart and it successfully  passed the test 

\noindent
{\bf Expected Output}\\
The expected outputs are to assert that if the chart is updated, print on the screen chart Updated.

\noindent
{\bf Traces to Use Cases}\\
View Tasks





\subsubsection{2.3.2: TaskDeletionDialogTest.java} 

\subsubsection{Test Case 1:taskDeletionDialog() }

\noindent
{\bf Purpose}\\
Testing the testTaskDeletionDialog() function, which  check if the chart is  delted and not.

\noindent
{\bf Input Specification}\\
The input is an xml file.
I’m performing this test with this input to Check if the deleted file disappears from the chart it successfully passed the test.  


\noindent
{\bf Expected Output}\\
The expected outputs are to assert if the task is not visible by triggering true or false.

\noindent
{\bf Traces to Use Cases}\\
Modify Tasks




\subsubsection{2.3.3: TaskDeletionDialogTest.java} 

\subsubsection{Test Case 1:taskDeletionDialog() }

\noindent
{\bf Purpose}\\
This test if the task creation window will open when a tasktable and a persona table are given to it as inputs. This is for the requirement Viewing Task Assignments.

\noindent
{\bf Input Specification}\\
The input was a TaskTable object, which received its input from test1.xml, and a PersonTable object, which received the former TaskTable Object as an input.


\noindent
{\bf Expected Output}\\
The expected output was to make sure the window was visible.

\noindent
{\bf Traces to Use Cases}\\
View Tasks


\subsubsection{Test Case 2: actionPerformed()  }

\noindent
{\bf Purpose}\\
This test if button clicking would work within the Task Creation screen.

\noindent
{\bf Input Specification}\\
The input was a TaskTable object, which received its input from test1.xml, and a PersonTable object, which received the former TaskTable Object as an input.

\noindent
{\bf Expected Output}\\
The expected output was to make sure the window was visible after a button click.

\noindent
{\bf Traces to Use Cases}\\
None


\subsubsection{2.3.4: TaskProUI.java} 

\subsubsection{Test Case 1: taskProUI() }

\noindent
{\bf Purpose}\\
To test the taskProUI() function. This was to make sure a window would open displaying the main program. This is required to work for all other requirements to be able to work.

\noindent
{\bf Input Specification}\\
A TaskPro object and a TaskProUI object, with the recently created TaskPro object as the input.

\noindent
{\bf Expected Output}\\
The window is visible.

\noindent
{\bf Traces to Use Cases}\\
All use cases


\subsubsection{Test Case 2: editingStopped()  }

\noindent
{\bf Purpose}\\
To test the editingStopped() function. This button should end the session.

\noindent
{\bf Input Specification}\\
A TaskPro object and a TaskProUI object, with the recently created TaskPro object as the input.

\noindent
{\bf Expected Output}\\
The window is no longer visible.

\noindent
{\bf Traces to Use Cases}\\
None







\section{Known Bugs}

{\it

-If the user attempts to add a task as a subtask to one of its own subtasks (an illegal operation), its subtasks get deleted.

-When a subtask is deleted from its parent, the parents dependencies do not get updated properly, and still contain the deleted subtask ID.
}



\end{document}
